#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>


//将数字的各位存到数组中
void fun(int num, int n[])
{
	int i=0;
	while(num)
	{
		n[i++]=num%10;
		num/=10;
	}	
}

void Position_T_number(int num,int num1,int num2,int n1[],int n2[])
{
	int A=0;//A:数字和位置均正确的个数
	int B=0;//B:位置不正确但数字正确的个数

	int i,j;

	for(i=0;i<num;i++)
	{
		if(n1[i] == n2[i])
		{
			A++;
		}
	}
	
	for(i=0;i<num;i++)
	{
		for(j=0;j<num;j++)
		{
			if(n1[i] == n2[j]&& i!=j )
			{
				B++;
			}
		}
	}
	printf("clue on:%d A %d B\n",A,B);
	
}

int main()
{
	srand((unsigned int)time(NULL));
	int n[1024]={0},s[1024]={0};
	
	printf("1.start game?(y/n)\n");
	printf("2.Rule\n");
	printf("3.exit\n");
	printf("Please choose: ");
	int choose;//保存要选择的人选项
	scanf("%d",&choose);
	//system("clear");//清屏
	switch (choose)
	{
		case 1 :
				while(1)
				{
					int num;//保存被猜的数字
					scanf("%d",&num);//被猜数字的位数

					
					int ret=rand() % ((int)pow(10,num));//产生一个num位数字
					if(ret>=((int)pow(10,num-1)) && ret<((int)pow(10,num)))
					{
						int count=0;//猜测次数
						agine:
						//开始猜数字：
						printf("guess:");
						int guessNumber;
						scanf("%d",&guessNumber);
						//保存等下要比较的各个位的数字，num1保存产生的随机数，num2保存猜的
						
						int num1[num],num2[num];
						fun(ret,num1);
						fun(guessNumber,num2);

						Position_T_number(num, ret, guessNumber,  num1, num2);

						if(guessNumber == ret)
						{
							printf("恭喜您猜对了！但没有奖励.");
						}
						else
						{
							count++;
							if(count==3)
							{
								printf("您的机会已经用尽！");
								printf("%d\n",ret);
								return 0;
							}
							goto agine;
						}
					}
				}break;
		case 2 : printf("猜数字游戏规则:... ...\n");break;
		case 3 : exit(0);break;
		default :printf("您输入的选项有误!\n");break;
	}
	
	
	return 0;
}
